package File;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Ap0stoL2
 * Date: 2023-08-05
 * Time: 21:17
 */

//Reader
public class Demo6 {

//    //写法1
//    public static void main(String[] args) throws IOException {
//
//        //可以传传文件的相对路径和绝对路径或者可以填写一个构造好的File对象
//        //打开文件的操作
//        Reader reader = new FileReader("d:/test.txt");
//        try{
//            //中间无论发生什么情况,即便异常了,finally有能执行到close,就不会出现泄露问题
//        }finally {
//            //释放必要资源
//            //让一个进程打开文件,是要从系统中申请资源的,比如释放了pcb里文件描述符表中的表项(这个表项长度有限,不会扩容,当满了就会能打开新的文件)
//            //如果不是放,就会出现"文件资源泄露"等严重的问题
//            reader.close();
//        }
//
//    }

    //写法2
    //使用try with resourses 更好的解决
    public static void main(String[] args) throws IOException {

        //只要try代码块执行完毕就会自动调用到close
        //这里的设定类似于synchronized 除了代码块自动释放资源
        //可以写写多个文件打开(Read对象),用分号隔开  Reader reader = new FileReader("d:/test.txt");Reader reader2 = new FileReader("d:/test2.txt")
        //文件流中的任意对象,都可以按照上述的讨论来进行 close (try with resourses的方法)

        //打开一个文件
        try( Reader reader = new FileReader("d:/test.txt")){
            //reader.read()


        }

//        //打开多个
//        try( Reader reader = new FileReader("d:/test.txt");
//             Reader reader2 = new FileReader("d:/test2.txt")){
//
//
//
//        }
    }
}
